
let q x = "\"" ^ x ^ "\""

let rec join delim = function
  | [] -> "" 
  | hd::[] -> hd
  | hd::tl -> hd ^ delim ^ (join delim tl)
  
let concat = join ""

let option_to_string = function
  | None -> ""
  | Some x -> x


let rec map f xx = match xx with
  | [] -> []
  | hd :: tl -> (f hd) :: (map f tl)


let is_number x = try float_of_string x; true with _ -> false


